package com.newvpn.fastbest.zenith.utils;

import android.content.Context;
import android.content.SharedPreferences;

public enum KeyStore {
    INS;
    private SharedPreferences sharedPreferences;
    private SharedPreferences.Editor editor;

    // 构造函数，传入context和sp文件名
    public void init(Context context) {
        sharedPreferences = context.getSharedPreferences("vpn", Context.MODE_PRIVATE);
        editor = sharedPreferences.edit();
    }

    // 保存字符串数据
    public void putString(String key, String value) {
        editor.putString(key, value).apply();
    }

    // 获取字符串数据
    public String getString(String key, String defaultValue) {
        return sharedPreferences.getString(key, defaultValue);
    }

    // 保存整型数据
    public void putInt(String key, int value) {
        editor.putInt(key, value).apply();
    }

    // 获取整型数据
    public int getInt(String key, int defaultValue) {
        return sharedPreferences.getInt(key, defaultValue);
    }

    // 保存布尔型数据
    public void putBoolean(String key, boolean value) {
        editor.putBoolean(key, value).apply();
    }

    // 获取布尔型数据
    public boolean getBoolean(String key, boolean defaultValue) {
        return sharedPreferences.getBoolean(key, defaultValue);
    }

    // 保存浮点型数据
    public void putFloat(String key, float value) {
        editor.putFloat(key, value).apply();
    }

    // 获取浮点型数据
    public float getFloat(String key, float defaultValue) {
        return sharedPreferences.getFloat(key, defaultValue);
    }

    // 保存长整型数据
    public void putLong(String key, long value) {
        editor.putLong(key, value).apply();
    }

    // 获取长整型数据
    public long getLong(String key, long defaultValue) {
        return sharedPreferences.getLong(key, defaultValue);
    }

    // 移除某个key值已经对应的值
    public void remove(String key) {
        editor.remove(key).apply();
    }

    // 清除所有数据
    public void clear() {
        editor.clear().apply();
    }
}